package com.one.group.admin.mapper;

import com.mybatisflex.core.BaseMapper;
import com.one.group.model.entity.Question;
import com.one.group.model.vo.QuestionDetailVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 问题Mapper
 * @author kld
 */
@Mapper
public interface QuestionMapper extends BaseMapper<Question> {
    
    /**
     * 获取指定问卷的最大题号
     * @param questionnaireId 问卷ID
     * @param tenantId 租户ID
     * @return 最大题号
     */
    Integer getMaxSortByQuestionnaireId(Long questionnaireId, Long tenantId);
    
    /**
     * 获取问题详情，包括选项
     * @param questionId 问题ID
     * @param tenantId 租户ID
     * @return 问题详情
     */
    QuestionDetailVo getQuestionDetail(Long questionId, Long tenantId);
    
    /**
     * 删除问题的所有选项
     * @param questionId 问题ID
     * @param tenantId 租户ID
     * @return 删除的行数
     */
    int deleteOptionsByQuestionId(Long questionId, Long tenantId);
    
    /**
     * 根据问卷ID查询所有问题，包括选项
     * @param questionnaireId 问卷ID
     * @param tenantId 租户ID
     * @return 问题列表
     */
    List<QuestionDetailVo> getQuestionsByQuestionnaireId(Long questionnaireId, Long tenantId);
    
    /**
     * 根据问卷ID对问题进行排序
     * @param questionnaireId 问卷ID
     * @param tenantId 租户ID
     * @return 是否排序成功
     */
    boolean batchUpdateQuestionSort( Long questionnaireId,Long tenantId);
    
}